package com.endpoint.author.to;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @Project: endpoint
 * @Name: BookTo
 * @Author: Jack_Li
 * @Date: 2024/7/4 8:17
 */
@Data
@ApiModel(description="小说书籍TO")
public class BookTo implements Serializable {
    @ApiModelProperty(value = "主键")
    private Long id;

    @ApiModelProperty(value = "作品方向，0：男频，1：女频")
    private Integer workDirection;

    @ApiModelProperty(value = "分类ID")
    private Integer catId;

    /**
     * 点击量
     */
    private Long visitCount;

    /**
     * 分类名
     */
    @ApiModelProperty(value = "分类名")
    private String catName;
    //其他略可以复制book属性

    /**
     * 小说封面
     */
    @ApiModelProperty(value = "小说封面")
    private String picUrl;

    /**
     * 小说名
     */
    @ApiModelProperty(value = "小说名")
    private String bookName;

    /**
     * 总字数
     */
    private Integer wordCount;

    /**
     * 评分，预留字段
     */
    private Float score;

    /**
     * 作者id
     */
    private Long authorId;

    /**
     * 作者名
     */
    @ApiModelProperty(value = "作者名")
    private String authorName;

    /**
     * 书籍描述
     */
    @ApiModelProperty(value = "书籍描述")
    private String bookDesc;

    /**
     * 是否收费，1：收费，0：免费
     */
    private Integer isVip;


    /**
     * 最新目录更新时间
     */
    @ApiModelProperty(value = "最新目录更新时间")
//    @JsonDeserialize(using = DateTimeDeserializer.class)
//    @JsonSerialize(using = DateTimeSerializer.class)
    private Date lastIndexUpdateTime;

    @ApiModelProperty(value = "最新目录id")
    private Long lastIndexId;

    /**
     * 最新目录名
     */
    @ApiModelProperty(value = "最新目录名")
    private String lastIndexName;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
}
